perm filename SINTAX.M2[L70,TES] blob
sn#009950 filedate 1972-06-27 generic text, type T, neo UTF8
00100 <INFIX> <ENTITY_NAME>:N [:N ≠ STOP$] → :N
00200
00300 <INFIX> `.' → ?&DOT <INFIX> `←' → ?&STORE
00400 <INFIX> `*' → TIMES <INFIX> `/' → QUOTIENT
00500 <INFIX> `+' → PLUS <INFIX> `-' → DIFFERENCE
00600 <INFIX> `↑' → PRELIST <INFIX> `↓' → SUFLIST
00700 <INFIX> `@' → APPEND <INFIX> `ε' → MEMBER
00800 <INFIX> `=' → EQUAL <INFIX> `≠' → NEQUAL
00900 <INFIX> `≤' → LEQUAL <INFIX> `≥' → GEQUAL
01000 <INFIX> `&' → AND <INFIX> `∧' → AND
01100 <INFIX> `|' → OR <INFIX> `∨' → OR
01200
01300 <PREFIX> STR → STR <PREFIX> STRP → STRP <PREFIX> STRLEN → STRLEN
01400 <PREFIX> AT → AT <PREFIX> PRINTSTR → PRINTSTR <PREFIX> PLUS → PLUS
01500 <PREFIX> CAR → CAR <PREFIX> CDR → CDR <PREFIX> CAAR → CAAR
01600 <PREFIX> CADR → CADR <PREFIX> CDAR → CDAR <PREFIX> CDDR → CDDR
01700 <PREFIX> CAAAR → CAAAR <PREFIX> CAADR → CAADR <PREFIX> CADAR → CADAR
01800 <PREFIX> CDAAR → CDAAR <PREFIX> CADDR → CADDR <PREFIX> CDADR → CDADR
01900 <PREFIX> CDAAR → CDAAR <PREFIX> CADDR → CADDR <PREFIX> CDADR → CDADR
02000 <PREFIX> CDDAR → CDDAR <PREFIX> CDDDR → CDDDR <PREFIX> CAAAAR → CAAAAR
02100 <PREFIX> CAAADR → CAAADR <PREFIX> CAADAR → CAADAR <PREFIX> CADAAR → CADAAR
02200 <PREFIX> CDAAAR → CDAAAR <PREFIX> CAADDR → CAADDR <PREFIX> CADADR → CADADR
02300 <PREFIX> CDAADR → CDAADR <PREFIX> CADDAR → CADDAR <PREFIX> CDADAR → CDADAR
02400 <PREFIX> CDDAAR → CDDAAR <PREFIX> CADDDR → CADDDR <PREFIX> CDADDR → CDADDR
02500 <PREFIX> CDDADR → CDDADR <PREFIX> CDDDAR → CDDDAR <PREFIX> CDDDDR → CDDDDR
02600 <PREFIX> ABS → ABS <PREFIX> ADD1 → ADD1 <PREFIX> ARG → ARG
02700 <PREFIX> ASCII → ASCII <PREFIX> ATOM → ATOM <PREFIX> BAKGAG → BAKGAG
02800 <PREFIX> CSYM → CSYM <PREFIX> DDTIN → DDTIN <PREFIX> ED → ED
02900 <PREFIX> ERR → ERR <PREFIX> EVAL → EVAL <PREFIX> ?*EVAL → ?*EVAL
03000 <PREFIX> EXAMINE → EXAMINE <PREFIX> EXPLODE → EXPLODE <PREFIX> EXPLODEC → EXPLODEC
03100 <PREFIX> FIX → FIX <PREFIX> FLATSIZE → FLATSIZE <PREFIX> FUNCTION → FUNCTION
03200 <PREFIX> ?*FUNCTION →?*FUNCTION <PREFIX> GCGAG → GCGAG <PREFIX> ?*GETSYM → ?*GETSYM
03300 <PREFIX> GO → GO <PREFIX> INITFN → INITFN <PREFIX> INTERN → INTERN
03400 <PREFIX> LAST → LAST <PREFIX> LENGTH → LENGTH <PREFIX> LINELENGTH → LINELENGTH
03500 <PREFIX> MAKNAM → MAKNAM <PREFIX> MINUS → MINUS <PREFIX> MINUSP → MINUSP
03600 <PREFIX> NCONS → NCONS <PREFIX> NOT → NOT <PREFIX> NOUUO → NOUUO
03700 <PREFIX> NULL → NULL <PREFIX> NUMBERP → NUMBERP <PREFIX> NUMVAL → NUMVAL
03800 <PREFIX> PRINC → PRINC <PREFIX> PRINT → PRINT <PREFIX> PRIN1 → PRIN1
03900 <PREFIX> QUOTE → QUOTE <PREFIX> READLIST → READLIST <PREFIX> RETURN → RETURN
04000 <PREFIX> REVERSE → REVERSE <PREFIX> ?*RSET → ?*RSET <PREFIX> SUB1 → SUB1
04100 <PREFIX> TERPRI → TERPRI <PREFIX> TYO → TYO <PREFIX> ZEROP → ZEROP
04200 <PREFIX> `¬' → NOT <PREFIX> `+' → PLUS <PREFIX> `-' → MINUS
00100 <HIER> (RIGHT :X) → <HIER> (RIGHT <HIER>:X)
00200 <HIER> (RIGHT (:L :R)) → :R
00300 <HIER> (LEFT :X) → <HIER> (LEFT <HIER>:X)
00400 <HIER> (LEFT (:L :R)) → :L
00500
00600 <HIER> ?&DOT → (900 950)
00700 <HIER> TIMES → (700 750) <HIER> QUOTIENT → (700 750)
00800 <HIER> PLUS → (600 650) <HIER> DIFFERENCE → (600 650)
00900 <HIER>: DEFAULT → (500 550) <HIER> DIFFERENCE → (500 550)
01000 <HIER> APPEND → (450 400) <HIER> NCONC → (450 400)
01100 <HIER> CONS → (450 400) <HIER> XCONS → (450 400)
01200 <HIER> CAT → (450 400)
01300 <HIER> EQ → (300 350) <HIER> NEQ → (300 350)
01400 <HIER> EQUAL → (300 350) <HIER> NEQUAL → (300 350)
01500 <HIER> LEQUAL → (300 350) <HIER> GEQUAL → (300 350)
01600 <HIER> LESSP → (300 350) <HIER> GREATERP → (300 350)
01700 <HIER> MEMBER → (300 350) <HIER> MEMQ → (300 350)
01800 <HIER> AND → (200 250) <HIER> OR → (100 150)
01900 <HIER> ?&STORE → (15 10)
02000
02100 <MANY_ARGS> PLUS → T <MANY_ARGS> TIMES → T
02200 <MANY_ARGS> AND → T <MANY_ARGS> OR → T
00100 <PROGRAM> { ∞{ <PRINT_EXPRESSION>:E `;' } _EOF_ } → DONE
00200
00300 <PRINT_EXPRESSION> { <EXPRESSION>:E } → <EVAL> (PRINT (QUOTE :E))
00400
00500 <EXPRESSION> { <TERM>:T } → :T
00600 <EXPRESSION> { <TERM>:T <INFIX>:OP <EXPRESSION>:E } → (:OP :T :E)
00700
00800 <TERM> { <SIMPEX>:S } → :S
00900 <TERM> { <TERM>:T <INFIX>:OP <SIMPEX>:S }
01000 {<INFIX>:NEXTOP} [<HIER>(LEFT :OP) ≥ <HIER>(LEFT :NEXTOP)]
01100 → (:OP :T :S)
01200
01300 <SIMPEX> { <BASIC>:B } → :B
01400 <SIMPEX> { <BASIC>:B `[' <ARGLIST>:A `]' } → (?&INDEX :B :A)
01500 <SIMPEX> { <BASIC>:B `[' <ARGLIST>:A :FOO } →
01600 <ERROR> (ILLEGAL INDEX FOR :B -- :FOO WHERE `]' EXPECTED)
01700 <SIMPEX> { <SIMPEX>:S `{' <EXPRESSION>:E `}' } → ('?&INCONTEXT :S :E)
01800
01900 <BASIC> { <IDENTIFIER>:F `(' <ARGLIST>:A `)' } → (:F ::A)
02000 <BASIC> { <IDENTIFIER>:F `(' <ARGLIST>:A :FOO } →
02100 <ERROR> (ILLEGAL ARGUMENT FOR :F -- :FOO WHERE `)' EXPECTED)
02200
02300 <BASIC> { <PREFIX>:P <SIMPEX>:S } → (:P :S)
02400 <BASIC> { <IDENTIFIER>:I } → :I
02500 <BASIC> { <NUMBER>:N } → :N
02600 <BASIC> { <STRING>:S } → :S
02700
02800 <ARGLIST> { <EXPRESSION>:E ∞{ `,' <EXPRESSION>:EE } } → (:E ::EE)
02900
03000 <IDLIST> { <IDENTIFIER>:I ∞{ `,' <IDENTIFIER>:II } } → (:I ::II)
03100
03200 <LAMIDLIST> { <LAMID>(:I :S) ∞{ `,' <LAMID>(:II :SS) } } → ((:I ::II)(:S ::SS))
03300 <LAMID> { SPECIAL <IDENTIFIER>:I } → ((:I) (:I))
03400 <LAMID> { <IDENTIFIER>:I } → ((:I) ( ))
03500
03600 <BASIC> { ≡' <SEXPRESSION>:S } → (QUOTE :S)
03700 <BASIC> { `<' <ARGLIST>:A `>' } → (LIST :A)
03800 <BASIC> { `<' <ARGLIST>:A :FOO } →
03900 <ERROR>(ILLEGAL EXPRESSION IN LIST BRACKETS -- :FOO WHERE `>' EXPECTED)
04000 <BASIC> { `(' <EXPRESSION>:E `)' } → :E
04100 <BASIC> { `(' <EXPRESSION>:E :FOO } →
04200 <ERROR>(ILLEGAL PARENTHESIZED EXPRESSION -- :FOO WHERE `)' EXPECTED)
04300 <BASIC> { OCTAL <NUMBER>[$IBASE→8]:N } → :N
04400 <BASIC> { OCTAL :FOO } →
04500 <ERROR> (`≡'OCTAL≡' NOT FOLLOWED BY A NUMBER')